# #添加笔记测试
#v1.0实现系新增笔记测试
# #导入appium类库
from appium.webdriver.webdriver import WebDriver
from selenium.webdriver.common.by import By
import time
# #定义测试类
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
class yd_addnote():
    def __init__(self):
        # 创建⼀个字典，包装相应的启动参数
        self.caps = {}
        # self.caps['automationName'] = 'UiAutomator2'
        # 需要连接的手机的平台(不限制⼤⼩写)
        self.caps['platformName'] = 'Android'
        # 需要连接的手机的版本号(⽐如 5.2.1 的版本可以填写 5.2.1 或 5.2 或 5 ，以此类推)
        # self.caps['platformVersion'] = '4.4.2'#夜神
        self.caps['platformVersion'] = '7.1.2' #逍遥模拟器
        # 需要连接的手机的设备号
        # self.caps['deviceName'] = '127.0.0.1:62001' #夜神模拟器
        self.caps['deviceName'] = '127.0.0.1:21503' #逍遥模拟器
        # 需要启动的程序的包名
        self.caps['appPackage'] = 'tv.danmaku.bili'
        # 需要启动的程序的界面名
        self.caps['appActivity'] = 'tv.danmaku.bili.MainActivityV2'
        # 解决中文问题
        self.caps['unicodeKeyboard'] = True
        self.caps["resetKeyboard"] = True
        # 新建驱动
        self.driver = WebDriver('http://127.0.0.1:4723/wd/hub', self.caps)
    def test_login(self):
        # 点击“我同意“按钮
        self.driver.find_element(By.ID, "tv.danmaku.bili:id/agree").click()
        time.sleep(2)
        self.driver.find_element(By.ID,"tv.danmaku.bili:id/expand_search").click()
        time.sleep(2)
        self.driver.find_element(By.ID,"tv.danmaku.bili:id/search_src_text").send_keys("白月黑羽")
        time.sleep(2)
        self.driver.find_element(By.ID,"tv.danmaku.bili:id/action_search").click()
        time.sleep(2)
        self.driver.swipe(100,200,300,400,500)
        time.sleep(2)
    #进行新增笔记的测试
    # def test_addnote(self):
    #     # 向左滑动页面
    #     # scroll滑动 scroll(origin_el, destination_el, duration)
    #     # 参数:
    #     # 1.origin_el ：滑动开始的元素
    #     # 2.destination_el ：滑动结束的元素
    #     # 3.duration : 滑动效果的持续时间  单位ms（毫秒）
    #     # swipe滑动 swipe(start_x, start_y, end_x, end_y, duration=None)
    #     # start_x：起点X轴坐标  start_y：起点Y轴坐标
    #     # end_x：终点X轴坐标    end_y,： 终点Y轴坐标
    #     # duration：滑动这个操作⼀共持续的时间⻓度（也可以称惯性），单位：ms（毫秒）
    #     # （重点）什么是惯性，就是在上拉下滑的过程中，滑动动作结束后屏幕会还会滑一段距离，这个现象就是惯性。
    #     # duration时间越短，duration = None，这样惯性滑动的距离会非常的多。
    #     # duration时间越长，滑动这个动作越缓慢，惯性滑动的距离会变少。
    #     self.driver.swipe(651, 726, 78, 726, 500)
    #     # 点击“立即体验“按钮
    #     time.sleep(2)
    #     self.driver.find_element(By.ID,"com.youdao.note:id/enter_app").click()
    #     # self.driver.find_element_by_id('com.youdao.note:id/enter_app').click()
    #     time.sleep(2)
    #     el=WebDriverWait(self.driver,10).until(lambda x:x.find_element(By.ID,'com.youdao.note:id/add_note'))
    #     if el:
    #         # 点击允许按钮
    #         # driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
    #         # 点击新增+按钮
    #         self.driver.find_element(By.ID,'com.youdao.note:id/add_note').click()
    #         time.sleep(2)
    #         #点击新建笔记
    #         self.driver.find_element(By.ID,'com.youdao.note:id/add_note_floater_add_note').click()
    #         time.sleep(2)
    #         #点击取消按钮
    #         self.driver.find_element(By.ID,'com.youdao.note:id/btn_cancel').click()
    #         time.sleep(2)
    #         #输入内容
    #         self.driver.find_element(By.XPATH,"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView").send_keys('testcontex1231')
    #         time.sleep(2)
    #         #输入标题
    #         self.driver.find_element(By.ID,'com.youdao.note:id/note_title').send_keys('testtitle')
    #         time.sleep(2)
    #         #点击完成按钮
    #         self.driver.find_element(By.ID,'com.youdao.note:id/actionbar_complete_text').click()
    #         time.sleep(2)
    #         # 检查新增是否正确
    #         rtitle=self.driver.find_element(By.ID,'com.youdao.note:id/title').text
    #         if (rtitle=="testtitle"):
    #             print("新增成功")
    #         else:
    #             print("新增失败")
    # def check_addnote(self):
    #     title = self.driver.find_element(By.ID,'com.youdao.note:id/title').text
    #     print(title)
if __name__ == '__main__':
    yd_addnote_obj = yd_addnote()
    yd_addnote_obj.test_login()
    # yd_addnote_obj.test_addnote()
    # yd_addnote_obj.check_addnote()

